﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HFK.DxFluentUI.LanguageModel.Editors;

namespace HFK.DxFluentUI.LanguageModel
{
  public interface EditableElement<NextStep> : FluentBaseElement
  {
    FeatureActivationElement<NextStep> WithEditing();
  }

  public interface EditableWithConfigurationElement<NextStep> : FluentBaseElement
  {
    FeatureActivationWithConfigurationElement<EditableValuesElement<NextStep>, NextStep> WithEditing();
  }

  public interface EditableValuesElement<NextStep> : FluentBaseElement
  {
    NextStep Values<T>(T[] valuesToUse);
    EditableEditorElement<T, NextStep> Objects<T>(T[] valuesToUse);
  }

  public interface EditableEditorElement<ComponentType, NextStep> : FluentBaseElement
  {
    NextStep InDropdownBoxEditor(Action<DropdownBoxElement<ComponentType>> configuration);
    NextStep InDropdownGridEditor(Action<DropdownGridElement<ComponentType>> configuration);
  }
}
